package com.diaohw.platform.utility.uml.core.enums;

import java.lang.reflect.Modifier;

public enum AccessModifierEnum {

    PUBLIC("+"), PRIVATE("-"), PROTECTED("#"), OTHER(" ");

    public final String modifier;

    AccessModifierEnum(String modifier) {
        this.modifier = modifier;
    }

    public static AccessModifierEnum format(Class<?> clazz) {

        if (Modifier.isPublic(clazz.getModifiers())) {
            return PUBLIC;
        }
        if (Modifier.isPrivate(clazz.getModifiers())) {
            return PRIVATE;
        }
        if (Modifier.isProtected(clazz.getModifiers())) {
            return PROTECTED;
        }
        return OTHER;
    }

    public static AccessModifierEnum format(int modifier) {

        if (Modifier.isPublic(modifier)) {
            return PUBLIC;
        }
        if (Modifier.isPrivate(modifier)) {
            return PRIVATE;
        }
        if (Modifier.isProtected(modifier)) {
            return PROTECTED;
        }
        return OTHER;
    }
}
